Managing Part Forms

Employees will generate several documents or print outs while performing daily transactions in an enterprise resource system such as Deacom. Examples of these transactions include producing goods, shipping finished products to customers, or purchasing raw materials from vendors. The documents generated as a result of these transactions might include a job label indicating how much was produced, when it was produced, and any relevant job-specific or item-specific data. Labels such as these will often be attached to the drum, pallet or appropriate container used to store the goods in inventory. Another document example might be a certificate of analysis that is printed from an inventory lots report and indicates the quality control tests and results for the selected lot.

In Deacom, the templates used to create these documents throughout the system are called part forms. Each part form is designed to allow for easy modification and design based on individual customer needs.

Configuration

The "Print outs menu" and "Printouts -- maintenance" security settings must be set to "Yes" for users who will build and modify part forms. Other configuration considerations include access to any company logos or images that will be needed for the various forms.

In addition, the following steps are either required or should be considered when setting up Part Forms in Deacom.

  • Part form assignments will need to be considered. The assignment of part forms is dependent on a company's requirements or on the options they wish to select. While most customers will require a majority of the part forms used in Deacom, some customer's may not use all the part forms in the system. If a user selects the "View Label" or "Print" button within Deacom and a corresponding part form has not been setup, the system displays a prompt with this indication. Part forms are assigned as below:
    • System Default Part Form - The system's default version of each part from is identified and assigned at Print Outs > Maintenance > Part Forms. Users can select the appropriate part forms with a pick list. The generically designed part forms are normally specified as the system default as indicated above. When the "Inherit system part forms" flag checked on the Properties tab of the Item Master, the system default part from will be used unless an item-specific part form has been assigned to the item. In the example mentioned in the part form hierarchy section, if the item (PC model) selected on a Sales Order does not contain a part specific or customer item specific form, the system will use this system default version when a part form is generated.
    • Item Specific Part Form - The assignment of an item-specific part form is handled via Inventory > Item Master > enter the part number you wish to change > click "Modify" > select the "Part Forms" tab. Click the "+" to add the specific part form. The security setting "Item master -- access part forms tab" controls access to this area. In the example mentioned in the part form hierarchy section, if the item (PC model) selected contains an item specific sales label, the system will use this form instead of the system default one when a sales label is generated.
    • Customer Item Specific Part Form - Customer item specific part forms are assigned via Inventory > Item Master > click "View" > select a Bill-to/Ship-to > click "Modify". When this customer item is used on a Sales Order, the system will use the associated part forms instead of any item specific or system default versions. The security setting "Item master -- edit customers" controls access to this area.

Process

Designing/Modifying a Part Form

Designing a Part Form

When designing a part form for the first time, we recommend creating the form with only static data. Once the form has been setup and tested, users can go back and add the variable types of data mentioned in the part form components section. The list below contains the steps necessary to create the static part from. The adding of the variable data is handled in subsequent paragraphs.

  1. Print outs > Maintenance > Part Forms, Add New.
  2. Enter the following information:
    1. Name
    2. Default type - this will be the type of part form you want to create
    3. Enter the print method. if you choose designer, you will be creating the part form similar to a report. If you choose ZPL, you will be writing code to create the label. Please see the section on creating ZPL labels. https://help.deacom.com/index.php/Configuring_ZPL_Labels
  3. Click Save
  4. Click the "Edit Doc" button.
  5. Enter the text for all sections and section headers by dragging the type of field you want from the toolbox.
    1. Rectangle: Used to draw boxes or add images
    2. Field: Used to add text or Deacom field names (e.g. pr_codenum)
    3. Line: Used to draw vertical or horizontal lines. Note the lines can be finicky. it is wise to save often.
    4. Page Breaks: Used to force information to a separate page.
  6. Use X’s as placeholders for both text and numeric variable data. For each placeholder field, note (in another document) the section, field name, and whether it is user calculation result, component-based variable, or parent-based variable.
  7. Save and Exit the Edit Part Form form in Deacom.
  8. Indicate that the part form is the system default, by selecting it for its intended usage in Print Outs > Maintenance > Part Forms.

Change the format of the part form until the desired format is produced.

The second step is to replace the placeholders for parent-based variables with actual data. Create user-defined fields for the parent-based variables, if not already present, and replace the static text (XX.XXX) with the properly formatted contents of the variables e,g,(TRANS(pr_unitwgt,”99.999”)). Enter the value for the parent-based variable on the sample part and confirm the correct value and format on the generated regulatory form. Enter data for all of the parent parts, if not already present.

The third step is to replace the placeholders for component-based variables with actual data. Create user-defined fields for the component-based variables and enter values for the components of the sample part. Create a user calculation for the parent part and replace the static text (XX.XXX) with the properly formatted result of the user calculation e.g.(TRANS(VAL(STRTRAN(u_totwgt,",",""))). Confirm the correct result and format on the generated regulatory form. Enter data for all of the component parts.

The part form components section above discussed macro tags and categories or types of information that can be contained inside these tags. In many cases users will need to design expressions or conditional statements within the tags which will determine how data will be evaluated and potentially placed on the forms.

Setting up Images

Pictures, logos, and images can be added to the documents with the Rectangle button. Click on the file folder on the background image line and navigate to the picture you wish to include on the part form. Pictures can be printed conditionally, allowing them to show up only when desired. Multiple pictures or logos can be loaded on top of each other, with conditions that are mutually exclusive, so each product Category or Facility can have their own logo present on what is otherwise a single common form.

Using Conditional Printing (Print When statements)

It is possible to add a graphic such as a logo to a part form and have it print only if certain conditions are met. To do so, insert the picture and then right-click on it and select Format Picture, then click Alt Text and enter the appropriate expression in the print when line.

Determining the Available Fields

Many times, in form design there is information that you want to have printed on the form, but you don’t know whether it is available, or how to name it properly so that it appears on the printed document. There are a number of tools available in Deacom to help with this. When printing any document in Deacom, the user has the option to print the report to Variable Display. The Variable Display is an on-screen report that lists all of the variables available to the report. It has two sections:

  1. Fields available to the Detail section (line level information on sales and purchasing documents).
  2. Fields available to the Header section (order header fields like Customer and Vendor information that apply to the entire order).

Each field is displayed with the name that is used to reference the field in the document design, and with example data from the first data record. Many of the printed documents have calculated fields that are only available to that particular document. These fields can only be seen in the Variable Display.

Field Names on Data Entry Forms

Many times, the user can be looking at a field on a data entry form, which they would like to have added to a report, but don’t know the field name to reference in the document design. Right-clicking the field will display the field name.

If the field being displayed is coming from another supporting table, then right-clicking the field shows both the index field in the current table and the table and field that is actually being displayed on the form. Quite often, the program making data available to the document will use the same linkage and that field name will be visible in the Variable Display. There is a complete data dictionary of all tables and fields within Deacom, which is available at System > Data Dictionary. The listing also includes the data type and size of each field, which is not available elsewhere.

Field and Expression Examples

The fields and expressions below are taken from the generic Sales Label Part Form that is supplied within the system. The text contained within the << >> brackets represent customer, part, and quality control information relative to the Sales Order from which the sales label will be generated. The static text such as Company Name, City, State, Zip, etc. is used on the template to help identify the origins of the text contained within the tags and would not normally be included on forms used in the actual system.

Source Company Information (from facility table)

  • Company Name: <<go_compname>>
  • City, State, Zip: <<ALLT(wa_city)+”, “+ALLT(wa_state)+” “+ALLT(wa_zip)>>
  • Phone: <<IIF(wa_phone=0, TRANS(m.df_phone,”999-999-9999”),TRANS(wa_phone,”999-999-9999”))>>

Part Information

  • Part Number: <<m.pr_codenum>>
  • Part Description: <<m.pr_descrip>>
  • Quantity Shipped: <<TRANS(m.quant,g_salemask)>> g_salemask is the number of decimal digits controlled by Sales > Options > Order Entry tab "Sales Decimals" field.
  • Lot Number: << m.fi_userlot>>
  • Date of Manufacture: <<DTOC(m.fi_lotdate)>>
  • Date of Expiration: <<DTOC(m.fi_expires)>>

Receiving Company Information (from bill to and ship to tables)

  • Customer Name: <<m.bi_name>> <<m.sh_name>>
  • City, State, Zip: <<ALLT(m.sh_city)+”, “+ALLT(m.sh_state)+” “+ALLT(m.sh_zip)>>
  • Phone: <<IIF(m.sh_phone=0, TRANS(m.bi_phone,”999-999-9999”),TRANS(m.sh_phone,”999-999-9999”))>>

Order Information

  • Sales Order Number: <<TRANS(m.to_ordnum,”9999-99999-99”)>>
  • Customer PO Number: <<m.to_billpo>>
  • Shipping Date: <<DTOC(IIF(EMPTY(m.to_shipped),DATE(),m.to_shipped))>> (actual date of shipment if already shipped, today’s date if not)
    • (DTOC function converts Date variables TO Characters, as needed by Word)
  • Customer’s Part Number: <<cu_codenum>>
  • Customer’s Part Description: <<cu_descrip>>

QC Testing Information

(note that exact variable name depends on actual QC test name)

Specific QC Test Information:

  • pH target: <<m.qctgt_weight_per_gallon>>
  • pH value: <<m.qcval_weight_per_gallon>>
  • pH min: <<m.qcmin_weight_per_gallon>>

Parent QC Information:

  • pH target: <<m.qc2tgt_weight_per_gallon>>
  • pH value: <<m.qc2val_weight_per_gallon>>
  • pH min: <<m.qc2min_weight_per_gallon>>

Part Form Table Tags

A few key words in Macro tags produce tabular results instead of simple text strings. These key words are QCINFO, QCINFO_PARENT, LOTINFO, REGBOM, FULLREGBOM, LINES, JOBLOTFIN, JOBLOTREL and TABLE, and must be immediately inside the opening << brackets, with no space between the brackets and the key word. Note: These table tags must be in capitalized form when adding them to part forms within Deacom.

QCINFO: QCINFO is used to report the results of any QC tests made directly on the item in question. An example is paint in a one gallon can, being sold on the sales order, where the QCINFO block will report the QC results attached to the finished, packaged part. Only those tests that are marked to “Print on Part Forms” in the QC Group can be displayed. The fields available for printing in the QCINFO block include the q3_name, q3_unid, q3_method and q6_table* fields as well as all the fields in the dmqc2, and dtqc4 tables. The complete list of the fields within these tables can be found in the Deacom Data Dictionary via System > Data Dictionary. Note: Customer specific parts may also contain QC groups. Additional information on customer part QC groups is available via Managing Customer Specific Quality Specifications.

Note that qg_ fields (Quality Security Group Name) can be added to the QCINFO tag when printing batch tickets. This is helpful in situations where the customer needs to be aware of who the responsible party is for completing the tests printed on the document.

An example of an expression used within the QCINFO table tag is indicated below. This example will print the test name, target, min and max values and the first and last name associated with the user that approved the QC results.

<<QCINFO=PADR(ALLT(q3_name),20) + TRANS(q2_target) + “ “ + ALLTRIM(q4_value) + “ (“ + TRANS(q2_min) + “ – “ + TRANS(q2_max) + “) “ + ALLTRIM(us_fname) + “ “ + ALLTRIM(us_lname)>>

*The q6_table will have values of either “dmprod” or “dmrev” depending on which of those tables (dmprod=item master, dmrev=BOM revision) the QC is attached to. The situation where the q6_table field will be used is when there are QC specs attached to both the item master (normally SO return QC for finished goods) and the BOM revision (production QC) and you only want to see the production QC on the C of A or other part forms. When attached to both places, both show. User's can use an IIF statement to filter for only the production QC specs, as in IIF(ALLT(q6_table)=’dmrev’, string equation to print, ‘’).

Notes:

  • QC test user fields can be added to these blocks for Certificate of Analysis reports.
  • If customer specific QC tests results exist (as defined by the customer specific QC group on the customer cross part), the system will only print these test results on the selected part forms. Specifically, when printing part forms for a sales order and any of the items on the order have a customer part cross reference with a QC group specified, the QCINFO block will now only contain the tests in the customer part QC group that are marked to be printed. All other test results are now removed from the QCINFO block. In addition, if none of the tests in the customer specific QC group are marked to be printed, then the text in the QCINFO block will read "None".
  • The QCINFO command will follow part form value setups on QC groups. Form calcs such as Average, Last, Min and Max should all work. Specifically, the Report Generator applies form calcs before printing. QCINFO values can be filtered by last, average, min and max. Note that if a qc group has a q4_value that is not numeric (ex: "Blue"), filtering for that group does not occur.
  • The field "QC Pass" is now available as a file type via Tools > Maintenance > User Fields. QC user defined fields are available in the system. A User Fields tab is available on the ViewQC form. QC variables are now accessible on the C of A report, they can be accessed through two methods. 1) In the QCINFO block, simply use the field name you wish to add to the report. (i.e. field "u_approver_1" should be written in the report as "u_approver_1") 2) They are available through m. notation. simply put m.u_approver_1 (or whatever the field name is) into the report to produce that value on the report.
  • The field "QC Group" is now available as a file type via Tools > Maintenance > User Fields and is available to the QCINFO block.
  • SDS forms can be configured to include QC information from the QC Group(s) assigned to BOM revisions. To accomplish this, the SDS form must contain a field with the QCINFO block specified and a valid QCINFO expression. An example of an expression would be: "ALLT(qc_name) + "; " + ALLT(q3_name) + "; " + ALLT(q2_name) + "; " + TRANS(q2_min) + "; " + TRANS(q2_max)") Once this has been completed users will need to select a revision when printing SDS forms via Print Out > SDS Forms.

QCINFO_PARENT: QCINFO_PARENT is used to report the results of production QC tests for any items that were consumed during the production process of the item in question, and not just the items directly consumed by the job that produced the finished good. An example is paint in a one gallon can, being sold on the sales order, where the QCINFO_PARENT block will report the QC results attached to the bulk paint, whether made on the same job or a different job as well as the QC results for any jobs that produced the components used during the bulk paint production. The system will iterate back through as many as 50 levels of jobs to find all QC test results. The QCINFO_PARENT tag will also pull in qc results for lots that were received via PO then used for production and reserved to an SO.

Therefore, data in the QCINFO and QCINFO_PARENT blocks do not overlap. If you want to report QC results directly attached to the lot being shipped, as well as some or all of the QC results attached to lots issued to the job, both QCINFO and QCINFO_PARENT can be used on the same COA design.

In order to differentiate the test results for items produced on these jobs the QCINFO_PARENT block has additional fields available for printing. These fields are: pr_codenum, pr_descrip, qclevel, q3_name, q3_unid, q3_method and all the fields in the dtfifo table. Only those tests that are marked to “Print on Part Forms” in the QC Group can be displayed. In addition, The rows containing the QC information within the QCINFO_PARENT block will be sorted as follows:

  • QCLevel (descending order)
  • Part # (ascending order)
  • Lot #
  • QC Group
  • QC Sequence

Below is an example that prints the test name, target value, actual results and the minimum and maximum values in the QCINFO_PARENT table tag.

Test name, target, result, min, max

<<QCINFO_PARENT=LEFT(q3_name,20) + PADL(ALLT(q2_target),8) + PADL(ALLT(q4_value),8) + PADL(TRANS(q2_min,”999.99”),8) + PADL(TRANS(q2_max,”999.99”),8)>>

In addition to the fields mentioned previously, the q3_name field and all the fields in the dmqc2 and dtqc4 table are available for printing in the QCINFO_PARENT block. Please reference the Deacom Data Dictionary via System > Data Dictionary to see the list of fields in these tables. Note that the q4_ordnum field is only populated for pre-production QC tests in the system.

LOTINFO: LOTINFO is used to report detailed lot information. Below is an example that prints the lot number, lot data and lot quantity in the LOTINFO table tag.

Lot Number Lot Date Quantity

<<LOTINFO=PADR(ALLT(fi_userlot),12) + DTOC(fi_lotdate) + “ “ + TRANS(fi_quant,g_quanmask)>>

Notes:

  • QC test user fields can be added to these blocks for Certificate of Analysis reports.
  • The partnum and descrip fields are available to print within the LOTINFO tag. When used with lot information, this allows users to print the lots contained with a master lot when printing a master lot label.
  • User defined fields are available for the LOTINFO tag when printing master lot labels.
  • Item Master User Defined Fields are available to the lotinfo tag.

TABLE: TABLE is also used to generate a list of component items, as in Section 3 of the SDS which reports hazardous components. The list generated by the TABLE tag is a complete list of components, so it often needs to be filtered with an IIF statement to display only the components needed in the particular section. Two examples of TABLE statements which might be used on the SDS form are included below.

Example 1

<<TABLE=IIF(U_SARA = .T. and 1.00<totwgt/VAL(STRTRAN(u_totwgt,”,”))*100, “See Section 15”, “ “)>>

This statement can be interpreted as follows. Check the item master user field "U_SARA" for all of the materials on the selected item's regulatory BOM. The selected item is generally a finished good. If any of the materials' "U_SARA" field is marked as true, indicated by the ".T." and the weight of this material is more than 1% of the total weight of the sum, then insert the "See Section 15" statement on the SDS form. Section 15 of a standard SDS form generally contains regulatory information.

Example 2

<<TABLE=IIF(U_HAZARDOUS = .T. AND 1.00<totwgt/VAL(STRTRAN(u_totwgt,”,”))*100, PADR(u_msdsname, 22)+ PADR(u_casno, 15) + PADR(IIF(BETWEEN(totwgt / VAL(STRTRAN(u_totwgt,',')), .01, .05), "1 - 5%", IIF(BETWEEN(totwgt / VAL(STRTRAN(u_totwgt,',')), .05, .20), "5 - 20%", IIF(BETWEEN(totwgt / VAL(STRTRAN(u_totwgt,',')), .20, .50), "20 - 50%", IIF(BETWEEN(totwgt / VAL(STRTRAN(u_totwgt,',')), .50, 1), "50 - 100%", "< 1%")))), 14), “ ”)>>

This statement can be interpreted as follows. Check the item master user field "U_HAZARDOUS" for all of the materials on the selected item's regulatory BOM. If any of the materials' user field"U_HAZARDOUS" is marked yes, as indicated by the ".T." and if the weight % of this material is more than 1.00% of the total weight of the sum then valuate the weight %. If the weight % is between .01 and .05 then insert the name of the material (U_SDSNAME), the CAS# for the material (U_CASNO), and the text “1-5%”, if it is between .05 and .20 then insert the text "5-20%" etc…

This example specifically calls for the name of the ingredient, the CAS number and the weight % to be listed. The first example did not call for any of the material or ingredient names and information to be listed; instead, the first example just indicated that section 15 should be referenced if any of the materials or ingredients on the regulatory BOM meet the conditions specified in the statement.

Notes:

  • When using the table tag of: TABLE, the word "NONE" will appear anytime there are no results to be returned when printing a part form. The system option "Print "None" for empty values" controls this. If the flag is checked, the word "None" will be printed. If the flag is un checked, nothing will be printed when there are no results to be printed.
  • BOM line user fields may be used within the TABLE tag when printing SDS forms.

REGBOM: REGBOM returns information from the BOM for the selected Regulatory BOM items. Specifically, REGBOM returns the lowest level in the Bill of Materials including regulatory parts/information.

The available fields are: basetotvol, basetotwgt, b2_estcost, b2_boid, bocount, bo_bomfor, bo_byproduct, bo_desig, bo_fixqty, bo_id, bo_notes, bo_overage, bo_overissue, bo_reid, bo_scrap, bo_scrapcost, bo_seq, bo_subtot, bo_costonly, bo_prid, bo_useexp, dispcnt, exten, futext, level, ljid, orid, origqty, parentid, pr_id, pr_codenum, pr_descrip, pr_level, pr_buid, pr_caid, pr_lispric, pr_stanlab, pr_stanmat, pr_stantot, pr_active, pr_taxable, pr_unitwgt, pr_ware1, pr_control, pr_drwcode, pr_reorder, pr_salable, pr_purable, pr_stocked, pr_abc, pr_user1, pr_user2, pr_user3, pr_user4, pr_notes, pr_make, pr_ordtype, pr_frtclas, pr_retail, pr_burden, pr_prunid, pr_scrap, pr_purpric, pr_c2id, pr_discoun, pr_singord, pr_chid, pr_invchid, pr_matexp, pr_invadj, pr_cogpro, pr_rdid, pr_unitvol, pr_unitcub, pr_reorder2, pr_puradj, pr_hazard, pr_matbur, pr_buracct, pr_salunid, pr_finmat, pr_finlab, pr_finbur, pr_specpar, pr_density, pr_counted, pr_cntflag, pr_fixstan, pr_invgain, pr_user5, pr_user6, pr_neginv, pr_maxquan1, pr_maxquan2, pr_fixmat, pr_fixlab, pr_fixbur, pr_fixmbur, pr_fixupdt, pr_mrp, pr_catch, pr_catchwgt, pr_tranvar, pr_xferexp, pr_loadcalc1, pr_loadcalc2, pr_loadcalc3, pr_burcalc, pr_matburcalc, pr_purtype, pr_taxpo, pr_popso, pr_poppo, pr_custinv, pr_qcid, pr_quota, pr_lifocost, pr_tgid, pr_user7, pr_user8, pr_user9, pr_rdid2, pr_secure, pr_hazflag, pr_stanfrt, pr_fixfrt, pr_frtchid, pr_phid, pr_shelf, pr_commable, pr_finwip, pr_custreq, pr_poquan, pr_soquan, pr_jobquan, pr_makeord, pr_inherit, pr_minmar, pr_tarmar, pr_msfactor, pr_allowbom, pr_futmat, pr_futlab, pr_futbur, pr_futmbur, pr_futfrt, pr_futstan, pr_timemrp, pr_nosub, pr_finpart, pr_purunid, pr_unid, pr_lotreqd, pr_orddays, pr_qcfreq, pr_lotrecv, pr_vendreq, pr_cofaid, pr_msdsid, pr_finback, pr_markup, pr_xfermarkchid, pr_stanupdt, pr_futupdt, pr_psid, pr_serial, pr_featcost, pr_reqfacility, pr_routing, pr_issueoverlimit, pr_issuelimitenforce, pr_porecvlimit, pr_porecvlimitenforce, pr_secureprice, pr_xfercost, pr_s1id, pr_s2id, pr_backjob, pr_splitjobs, pr_overissue, pr_unitlen, pr_loid, pr_jobmin, pr_ltid, pr_qclead, pr_trakid, pr_trak2id, pr_minquant, pr_qcfreqtype, pr_serialcont, pr_jobmgid, pr_separatejobs, pr_rollupmats, pr_rolluplabor, pr_rollupburden, pr_tarewgt, pr_finasissued, pr_countunid, pr_palunid, pr_picture, pr_popjob, pr_routesale, pr_contprid, pr_finmatwiploc, pr_scrapcost, pr_rollupwtvol, pr_xferchid, pr_measured, pr_creditcost, pr_routereturn, pr_combinepos, pr_definqty, pr_incquant, pr_shoprel, pr_frominvprid, pr_minsale, pr_incsale, pr_splitpos, pr_separatepos, prfact, bo_unid, esttotcost, required, un_factor, re_name, re_default, re_regulat, re_shid, sortfld, totcub, totlen, totvol, totwgt, un_name, un_type, volcost, volper, wanted, wgtcost, wgtper, revunid, revwgt, revvol, revcub, revlen, stockfactor, stocktype, stockunit, print, r2_prid, r2_reid, r2_id, r2_unid, r2_notes, prtunit, prtquant, idfld, Active Item Master User Defined Fields.

FULLREGBOM: FULLREGBOM displays information for the Regulatory BOM items, just like the REGBOM tag, and in addition all levels of components for the selected regulatory part.

The available fields are: b2_estcost, b2_boid, bocount, bo_bomfor, bo_byproduct, bo_desig, bo_fixqty, bo_id, bo_notes, bo_overage, bo_overissue, bo_reid, bo_scrap, bo_scrapcost, bo_seq, bo_subtot, bo_costonly, bo_prid, bo_useexp, dispcnt, exten, futext, level, ljid, ordnum, orid, origqty, parentid, pr_id, pr_codenum, pr_descrip, pr_level, pr_buid, pr_caid, pr_lispric, pr_stanlab, pr_stanmat, pr_stantot, pr_active, pr_taxable, pr_unitwgt, pr_ware1, pr_control, pr_drwcode, pr_reorder, pr_salable, pr_purable, pr_stocked, pr_abc, pr_user1, pr_user2, pr_user3, pr_user4, pr_notes, pr_make, pr_ordtype, pr_frtclas, pr_retail, pr_burden, pr_prunid, pr_scrap, pr_purpric, pr_c2id, pr_discoun, pr_singord, pr_chid, pr_invchid, pr_matexp, pr_invadj, pr_cogpro, pr_rdid, pr_unitvol, pr_unitcub, pr_reorder2, pr_puradj, pr_hazard, pr_matbur, pr_buracct, pr_salunid, pr_finmat, pr_finlab, pr_finbur, pr_specpar, pr_density, pr_counted, pr_cntflag, pr_fixstan, pr_invgain, pr_user5, pr_user6, pr_neginv, pr_maxquan1, pr_maxquan2, pr_fixmat, pr_fixlab, pr_fixbur, pr_fixmbur, pr_fixupdt, pr_mrp, pr_catch, pr_catchwgt, pr_tranvar, pr_xferexp, pr_loadcalc1, pr_loadcalc2, pr_loadcalc3, pr_burcalc, pr_matburcalc, pr_purtype, pr_taxpo, pr_popso, pr_poppo, pr_custinv, pr_qcid, pr_quota, pr_lifocost, pr_tgid, pr_user7, pr_user8, pr_user9, pr_rdid2, pr_secure, pr_hazflag, pr_stanfrt, pr_fixfrt, pr_frtchid, pr_phid, pr_shelf, pr_commable, pr_finwip, pr_custreq, pr_poquan, pr_soquan, pr_jobquan, pr_makeord, pr_inherit, pr_minmar, pr_tarmar, pr_msfactor, pr_allowbom, pr_futmat, pr_futlab, pr_futbur, pr_futmbur, pr_futfrt, pr_futstan, pr_timemrp, pr_nosub, pr_finpart, pr_purunid, pr_unid, pr_lotreqd, pr_orddays, pr_qcfreq, pr_lotrecv, pr_vendreq, pr_cofaid, pr_msdsid, pr_finback, pr_markup, pr_xfermarkchid, pr_stanupdt, pr_futupdt, pr_psid, pr_serial, pr_featcost, pr_reqfacility, pr_routing, pr_issueoverlimit, pr_issuelimitenforce, pr_porecvlimit, pr_porecvlimitenforce, pr_secureprice, pr_xfercost, pr_s1id, pr_s2id, pr_backjob, pr_splitjobs, pr_overissue, pr_unitlen, pr_loid, pr_jobmin, pr_ltid, pr_qclead, pr_trakid, pr_trak2id, pr_minquant, pr_qcfreqtype, pr_serialcont, pr_jobmgid, pr_separatejobs, pr_rollupmats, pr_rolluplabor, pr_rollupburden, pr_tarewgt, pr_finasissued, pr_countunid, pr_palunid, pr_picture, pr_popjob, pr_routesale, pr_contprid, pr_finmatwiploc, pr_scrapcost, pr_rollupwtvol, pr_xferchid, pr_measured, pr_creditcost, pr_routereturn, pr_combinepos, pr_definqty, pr_incquant, pr_shoprel, pr_frominvprid, pr_minsale, pr_incsale, pr_splitpos, pr_separatepos, prfact, bo_unid, esttotcost, required, un_factor, re_name, re_default, re_regulat, re_shid, sortfld, totcub, totlen, totvol, totwgt, un_name, un_type, volcost, volper, wanted, wgtcost, wgtper, revunid, revwgt, revvol, revcub, revlen, stockfactor, stocktype, stockunit, idfld, Active Item Master User Defined Fields.

Note: The system option, "Summarize Regulatory BOM", on the part forms tab is considered when gathering regulatory information for part label printing. If checked, regulatory BOMs will be summarized, specifically the bo_bomfor value will be '0'. If unchecked, the bo_bomfor will display the right number. The box is checked by default. Unchecking the box is useful when printing nutrition labels where the it is necessary that the bo_bomfor = pr_id in order to print the ingredients list.

JOBLOTFIN: JOBLOTFIN returns the lot(s) that the part(s) were finished to.

The available fields are: fi_id, fi_date, fi_lotdate, fi_lotnum, fi_userlot, fi_prid, fi_zeroed, fi_quant, fi_balance, fi_cost, fi_postref, fi_action, fi_loc, fi_allonum, fi_type, fi_group, fi_waid, fi_chid, fi_orid, fi_exten, fi_catchwgt, fi_serial, fi_expires, fi_invcost, fi_attrib1, fi_attrib2, fi_attrib3, fi_descrip, fi_q4group, fi_qc, fi_masterlot, fi_tally, fi_loid, fi_notes, fi_container, fi_contnum, fi_atrisk, fi_density, fi_recdate, fi_rtid, fi_contunid, pr_codenum, pr_descrip

JOBLOTREL: JOBLOTREL retruns the items/parts consumed on the job (complete with lot info).

The available fields are: fi_id, fi_date, fi_lotdate, fi_lotnum, fi_userlot, fi_prid, fi_zeroed, fi_quant, fi_balance, fi_cost, fi_postref, fi_action, fi_loc, fi_allonum, fi_type, fi_group, fi_waid, fi_chid, fi_orid, fi_exten, fi_catchwgt, fi_serial, fi_expires, fi_invcost, fi_attrib1, fi_attrib2, fi_attrib3, fi_descrip, fi_q4group, fi_qc, fi_masterlot, fi_tally, fi_loid, fi_notes, fi_container, fi_contnum, fi_atrisk, fi_density, fi_recdate, fi_rtid, fi_contunid, pr_codenum, pr_descrip, quant, qclevel

LINES: LINES returns the following fields/information for sales, purchase, and/or job order lines: idnum, prid, reid, ljid, allonum, quant.

MASTERLOTINFO: MASTERLOTINFO returns lot information for the lots contained in the master lot. This will function like the LOTINFO tag except it will add a Master Lot Header row. Note that the field m.totlots tracks the total number of lots (master and normal). Item Master User Defined Fields are available to this tag.

Details and Example

When using this table tag, the system adds a header row which makes the Master Lot Number available. This will need to be used in conjunction with an IIF statement to determine if it is a header row (if fi_prid = 0).

<<MASTERLOTINFO=IIF(fi_prid = 0, "Master Lot: " + TRANS(fi_masterlot), PADR(ALLT(fi_userlot),12) + DTOC(fi_lotdate) + " " + TRANS(fi_quant,go.quanmask) + TRANS(fi_quant * VAL(fi_attrib1), "99,999.9999"))>>

SOLINES: Available in 15.05.030, SOLINES returns the information for the lines of the order specified.

The available fields are: all fields within the dttord, dtord, dmbill, dmship, dmprod, dmcust tables as well as any associated UDFs for those tables. Can then be used in trigger messages.

Spacing on Part Forms

For minor spacing issues, the "Tab" button will help control the number of spaces in different lines. If extensive spacing formatting is required, you can insert a Default Word table and adjust the row/column spacing as needed. The table can also be set to have no border color.

Regulatory Bill Of Materials

Some purchased components will be directly represented on the regulatory form, because they are a pure regulatory component having an assigned CAS number, for example. For these components, the values for component-based variables are entered directly to the user-defined fields of the component part, and used in user calculations to determine their effect on the physical properties of the parent part.

Other purchased components will not be directly represented on the regulatory form, because they are composed of multiple regulatory components, each having their own assigned CAS number, for example. For these components, a regulatory bill of materials (BOM) is entered instead of entering the values on the item master of the purchased component.

A regulatory BOM for a purchased part is entered in much the same way that a formula is entered for a manufactured product, with minor differences. The sub-component parts can either be entered during BOM creation or in advance, possibly copied from other parts. A part entered purely for use in a regulatory BOM can be marked as not purchasable, not salable, and not manufactured to prevent its use in any of those modules. It also might be in its own unique category of SDS parts, rather than in categories with purchased parts. The component-based variable data for the SDS will be stored in the user-defined fields of these regulatory parts, and will be available, through the use of the TABLE macro tag, to the part forms for top-level formulas. (Section 3 of SDS)

To enter a regulatory BOM, view a list of items that includes the purchased part that needs the regulatory BOM, in Inventory / Item Master. Select the part and click the Edit BOM button. Using the radio buttons in the lower right, set the BOM to be Active, Default, and Regulatory. Regulatory BOMs are not used for costing purposes, the sum of the cost of the components do not roll up to the parent part, and to not contribute to the results of user calculations. Regulatory BOMs are also fixed to produce one unit of weight or volume of the purchased part, and the non-reportable sub-components do not have to be listed.

As an example, consider a purchased component that is made up of two reportable sub-components. By weight, it is made up of 50% sub-component A and 30% sub-component B. The remaining 20% is listed as non-reportable by the vendor, on their SDS. The regulatory BOM should have one line for 0.5 pounds of A, and a second line for 0.3 pounds of B, with no third line. The batch yield calculation should be set to weight in this case, rather than volume, since weight fractions were reported by the vendor. The batch yield will be fixed at 1, as a feature of regulatory BOMs. The revision can be named “SDS” to distinguish it from other formulas to be used in production.

Setting the Part Forms Print Destination

There are times when a certain document is supposed to print on a specific printer, even if an attempt to send it elsewhere. This can be for reasons of security, printer features (collating or double-sided printing) or pre-loaded paper type.

On the Edit Part Form, at Print outs > Maintenance > Part Forms, there is an optional field available to specify the Print destination. If left blank, the form will print wherever the user sends it. The drop-down printer list contains all of the printers installed on the client computer, and any of them can be selected as the destination. If a specific printer is selected in this field, then the part form will only print to this printer, regardless of the printer selected when printing the part form.

Note: If printing a Label, the Print Destination selected in the Part Forms can be overridden by the Printer combo box on the Labels form.

Setting the Part Forms Print Method

The edit part form window contains a field entitled "Print Method". There are two options, Designer and ZPL. Designer is the default functionality. Labels that will be used for Zebra printers may be designed in Deacom by selecting a print method of "ZPL". Once this is done, users will add the appropriate ZPL commands to the "ZPL Definition" field.

An example of a basic ZPL Definition and helpful sites dealing with ZPL commands are available on the Configuring ZPL Labels page.

Note: The fi_masterlot field has been replaced with ml_lot in autofinisher palletizer (master lotter) code and in default autofinisher labels. When printing labels via the Autofinsiher application, users wil need to use the ml_lot field/variable in the ZPL definition.

Tip: This ZPL command,^PQ<<labelqty>>,0000,0000,N^FS, can be used to control the number of labels that are printed when you use ZPL. This command is passed along the quantity from the print command (or the label quantity expression) .

Image Printing

Part Forms can print images that are attached to master records in the system. Using the F_DOCPIC variable inside of a part form will pull an image from the documents database and return the filename of the image or an empty string if the image could no be found. Its parameters are as follows:

<<F_DOCPIC(string tableName, int documentID, string description)>>

An example might be something like <<F_DOCPIC("dmprod", pr_id, "STEAKSAUCE")>>

Argument usage:

  • tableName - the name of the associated table for the document storage.
  • documentID - the numeric ID of the item in the table to which the document is linked.
  • description - the distinguishing factor for items with which multiple documents are associated.

Return value/effect:

The function inserts the picture from the database into the Word document at the place of the tag.

Date Functions and Options on Part Forms

The following functions are available to use with user expressions on part forms in Deacom.

  • ADDHOURS(ptDateTime, pnHours)
  • ADDMINUTES(ptDateTime, pnMinutes)
  • ADDSECONDS(ptDateTime, pnSeconds)

Examples of how these functions would work is illustrated below using the following expressions in a lot label.

<<TTOC(m.fi_recdate)>>

<<ADDHOURS(m.fi_recdate, 1)>>

<<ADDMINUTES(m.fi_recdate, 30)>>

<<ADDMINUTES(m.fi_recdate, 120)>>

In the example above, the functions would perform the actions indciated below:

  1. ADDHOURS would add 1 hour to the initial time.
  2. ADDMINUTES would add 30 minutes to the initial time.
  3. ADDSECONDS would add 120 seconds to the initial time.

Length and Width for Part Forms

When using the Web version of Deacom, the length and width of the part form is specified via Print Outs > Maintenance > Page Size.

Item Location Names on Part Forms

The item master default location and item facility default location names are available to part forms.

  • Item Master Default Location Name (lo_name) = prodloc
  • Item Master Default Location Type Name (lt_name) = prodloctype
  • Item Facility Default Location ID (p3_loid) = prod3locid
  • Item Facility Default Location Name (lo_name of p3_loid) = prod3loc

These can be added to part forms by simply just "Prod3LocationID = <<prod3locid>> " (without the quotes)

"Prod3LocationNAme = <<prod3loc>> " (without the quotes)

For the location name it can be added by saying

"default product location = <<prodloc>> "(without the quotes>>

Previewing Report Changes

In web based versions of Deacom, the "Preview" button in the report menu allows a user to make changes to a report and then preview the effect of those changes without having to exit the report designer. Once clicked, the system will display a list of appropriate orders depending on the type of reporting being edited. From here, the user selects the appropriate order then proceeds to print the appropriate report layout. Once finished, the user will exit the previewed report to return to the report designer. In addition, a print button has been added to the print preview to screen form, so that after verifying a report, the user can then send it to a printer.

Language Options for Sales and Purchasing Print Outs

The Bill-to/Ship-to and Vendor master records contain a language searchbox which allows specific languages to be set for these records. When documents are printed for orders/transactions that contains these languages, this language will be used in place of others set up in the system and for the appropriate users. Useful in situations where captions on documents for vendors or customers will be different than the language assigned to specific users. This option is only available in web-based versions of Deacom.

Note: Version 17.00.004 introduces the "Cultures" fieldto the Edit Language form. The field defines the culture used with the specified language. The culture selected will enable the system to use the date/time/number formatting generally defined for that culture when printing a sales report or part form. When printing, the date/time/number formatting will follow that of the Culture set for the Language on the Bill-To or Ship-To, depending on which is assigned to the Language field for the report/part form.

Client Rendering Option

The "Client Rendering" check box on the "Edit Part Form" helps in situations where clients are experiencing delays in printing documents. If checked, this flag allows rendering on the device/client side as opposed to the server side.

Using the Variables feature

The variable feature is used to create user-defined fields for calculations or to store information. A variable could be added that would sum whatever field was needed for the part form. For example, if the part form needed to sum the quantities for a field, a variable could be added to perform that function. Variables are added on part forms the same as fields. Instead of a field name, enter the variable name. Report variables can be set and used in Print When statements. In web, Variables are maintained in the Variables tab, accessed via the "Report Properties" button.

Beginning in version 17.00.009, Report variables on Report Layouts and Part Forms have been enhanced to allow users to specify values prior to printing documents. If this feature is utilized, then the Report Parameters form will be displayed during printing, allowing users to confirm default values, or if necessary enter new ones. Users can also specify if parameter entries are required.

The feature is configured as follows:

  1. Navigate to Print Outs > Maintenance > Part Forms.
  2. Select the appropriate part form and click "Modify".
  3. On the Edit Part Form form click the "Edit Doc" button, then the "Report Properties" button.
  4. On the Edit Report from click the "+" symbol on the Variables tab to open the Report Variables form.
  5. Enter a name for the Report Variable. Note: when naming variables in Part Forms there can be no spaces the "Name" field.
  6. Next, select an option other than "None" in the "Parameter Type" field. When an option besides "None" is selected, this triggers the system to display the Report Parameters form to the user prior to printing the Part Form.
  7. Select, or enter, appropriate options on the rest of the form. If a user will be required to enter a value for a report variable check the "Required" box. See the Reports Variables from link above for detailed information.
  8. Save and exit the Report Variables form.
  9. Save and exit both the Edit Report and Edit Part Form form.
  10. The next time the selected Part Form is printed the user will perform the following steps:
    1. Click "Print" on the Copies To Print form.
    2. The new "Report Variables" form will be displayed. Required parameters will be marked in blue.
    3. Enter the necessary values or make the appropriate selections and click the "Print" button to complete the printing process.

Notes:

  • Variables work in the title, detail, and header bands. In addition, variables can be evaluated as strings and not just as numbers.
  • Since numeric fields cannot be empty, 0 is treated as not complete in a required numeric field.
  • If values Min/Max values are required for Numeric variables, or if any variable type is marked as required, then the user will be prompted to enter the appropriate values before printing can continue.

DEACOM Web Version Report Design Features and Considerations

Print When Statements: In web versions of Deacom, ALT Text is evaluated as a print when expression for images and for text boxes. The system will not print the contents of a text box if the alt text evaluates to false.

Part Forms are modified and created under Print Outs > Maintenance > Part Forms.

Section 3. Process: Part 1 How do I print a Part Form?

Part Forms can be printed in various areas of the program depending on the type of part form you’re going to be printing.

  • Item Label – Item labels can be printed via: Inventory > Item Master > View Part > Print Item Label. The item label contains item master information as well as QC information for the item. Regarding QC information, the QCINFO and QCINFO_PARENT table tags may be added to the item master label. The QC information displayed will be based on the QC Tests/Test Groups contained on the default bill of material revision for the selected item. Additional information on the QCINFO and QCINFO_PARENT table tags is contained further down on this page. Note that QC User Fields are also available for printing on the Item Label.
  • Lot Label – Lot labels are printed via the Lots report in Inventory > Inventory Reporting > ‘Lots’ Report Type. When the report is run, you will find a ‘Print Lot Label’ button that can be used to print the highlighted records lot label. Contains information on part numbers contained in the lot as well as expiration date, catch weight and serial number information.
  • Job Label - This can be printed on the job itself in View mode. This can also be printed from the Production reports. When the reports are run, you will find a ‘Print Job Label’ button that can be used to print the highlighted records job label. Job labels contain item master information and job-specific data and may contain customer specific information if job is created using the Header Job checkbox on the Sales order.
  • Certificate of Analysis – The Certificate of Analysis or CoA can be printed via the Lots report in Inventory > Inventory Reporting > Lots Report Type. When the report is run, you will find a ‘Print CoA’ button that can be used to print the highlighted lots CoA form. The CoA can also be printed as part of a Document Group during the shipping of a sales order. You can also group together lines of the COA by using the flag "Print C Of A By QC Group in Document Group" in Inventory Options. Note - A COA can be printed for a lot that is no longer in stock by running the lots report with a historical date in which the given lot was still on hand. Note: Beginning in version 16.07.028, this button is available for the "Transactions", "History" and "Lot Tracking Explosion" reports. Added to support customers that require COA’s to be printed for all items used in a manufactured item as well as the manufactured item. In addition to lot information fields, if the lot is associated with a sales order (based on the postref field) and running either the "Transactions" and "History" reports, then the customer and sales order header fields from the dmbill, dmship, and dttord tables are available to the COA.

This report Contains item master information and batch-specific QC results may contain customer specific static data if using the customer/part override.

  • SDS – The Safety Data Sheet or SDS can be printed under: Print Outs > SDS Forms > Enter the part number and revision you wish to print this for and press Print. This report contains item master information and user calculation results and may contain customer specific static data if using the customer/part override.
  • Master Lot Label – Master Lot labels are printed via the Lots report in Inventory > Inventory Reporting > ‘Master Lots’ Report Type. When the report is run, you will find a ‘Print Master Lot Label’ button that can be used to print the highlighted records lot label. Contains item master information and either sales order or job information.
  • Sales Order Label – Printed as part of a Document Group during the shipping of a sales order or from the Sales Order View Detail form. Contains item master, sales order, and lot-specific information.
  • Purchasing Label – Contains item master, purchase order, and lot-specific information. Contains item master, purchase order, and lot-specific information. When using the QCINFO and QC PARENT INFO blocks for PO labels, the default values from the Item Master QC group/tests will be printed on the label.

FAQ & Diagnostic Tips

How do I remove blank lines from a Part Form where no data exists?

If you want to remove blank lines from a Part Form when no data exists remove the MS Word CRLF and add “+char(13)” to your conditional IIF statement. See the examples below. Before: <<IIF(u_Max_Abs_Wavelength=0,"", (TRANS(u_Max_Abs_Wavelength, "999")))>> <<IIF(EMPTY(u_Molecularweight), “”,(u_Molecularweight)+chr(13))>> After: <<IIF(u_Max_Abs_Wavelength=0,"", (TRANS(u_Max_Abs_Wavelength, 999"))+chr(13))>><<IIF(EMPTY(u_Molecularweight), “”,(u_Molecularweight)+chr(13))>> This will remove blank lines on your report. Before: Appearance/Odor: DARK BLUE POWDER, NO ODOR Molecular Weight: ~794 pH: 6-8.5 After: Appearance/Odor: DARK BLUE POWDER, NO ODOR Molecular Weight: ~794 pH: 6-8.5

How can I set up wider barcodes in my part forms or reports?

Select the text box containing the barcode and open the Font dialog box. Navigate to the Advanced tab and in the Character Spacing section, you can adjust the scale to 200%. That will always stretch the barcode wider.

Can Location Names and Location IDs be the same?

Yes. For example, customers may have a location name of "180" which also happens to match the location ID which equals "180." Both the location name and ID may be added to the barcode expression. In cases where the location name and ID match exactly and both are included in a GS1-128 barcode, users have the option to determine whether to treat the scanned location as a name first or an ID first via the "Location Search Order" field in Inventory Options.

Can I select and move multiple objects on part forms?

Yes, to select multiple objects at once, hold control + shift + click, then drag the mouse to highlight the objects on the report.

How do I add an incrementing number to each label starting from one?

Example: if you are trying to print 100 labels the first one would have the number 1, last one would have 100. The field to use on the part form is “LN_COPY”

When printing labels, can I print drum 1 of x? Where x is the total number of drums?

ln_copy is the number of the label being printed and ln_totalcopies is the total number of labels requested. Check the variable display for other available fields.

Note: If "In-totalcopies" does not appear to be working, the below code may be tried:

  • ALLT(STR(ln_copy))+" of "+ALLT(STR(labelqty)). EXAMPLE - To reprint a copy (e.g. label 7 out of 10 needs to be reprinted): the code in the part form should be: TRANS(IIF(!EMPTY(labeluser1), labeluser1, ln_copy)) + ' of ' + TRANS(IIF(!EMPTY(labeluser2),labeluser2, labelqty))
  • For the above example to reprint 7 out of 10: In the Print Part Forms screen, double-click on the line and enter 7 in the labeluser1 field and 10 in the labeluser2 field.

The results on my part form are not lining up correctly. What is causing this?

Confirm the fields you are displaying have results in them. Also confirm the part form does not have extra spaces in the expression or blank lines. You can also use tables when designing your report to align rows.

How do I indicate the total number of labels that are being printed as well as the current label index on part forms?

The "ln_LabelIndex" and "ln_LabelCount" varaibles can be added to the forms to accomplish this. For example, if you are printing a sales order by by master lot, add the following line: Master lot <<m.ln_LabelIndex>> of <<m.ln_LabelCount>>

Can I use Avery laser labels for purchase order labels?

Currently Deacom sends individual print jobs for each label requested. If you wanted to use Avery labels, you would be limited to the same item or lot per sheet.

Can I print my expiration date in the following format YYYY MM DD, where MM is a special bilingual abbreviation?

Yes - see below example. Expiration date 07/25/2013 would print 2013 JL 25. <<TRANS(YEAR(fi_expires), “9999”) + “ “ + IIF(MONTH(fi_expires)=1, "JA", IIF(MONTH(fi_expires)=2, "FE", IIF(MONTH(fi_expires)=3, "MR", IIF(MONTH(fi_expires)=4, "AL", IIF(MONTH(fi_expires)=5, "MA", IIF(MONTH(fi_expires)=6, "JN", IIF(MONTH(fi_expires)=7, "JL", IIF(MONTH(fi_expires)=8, "AU", IIF(MONTH(fi_expires)=9, "SE", IIF(MONTH(fi_expires)=10, "OC", IIF(MONTH(fi_expires)=11, "NO", IIF(MONTH(fi_expires)=12, "DE", "BAD")))))))))))) + “ “ + TRANS(DAY(fi_expires),”99”)>>

After creating a new part form, I am unable to open it for editing due to an error message. What can I do?

You will need to deactivate (uncheck the active box) the part form and recreate. It is suggested that new forms or modifications to existing forms are tested in your test environment before putting into production.

We are getting an error when trying to print part forms - "Retrieving the COM Class factory for component with CLSID {000209FF-0000-0000-0000000046} failed due to the following error: 8008005 Server execution failed." What is the problem?

The correct version of Office is not installed. 64bit version of Office is not compatible with Deacom. Uninstall and reinstall 32bit version of Office.

Deacom is locking up when trying to print part forms. What is the problem?

Verify in Print Outs > Maintenance > Part Forms tab and/or in Item Master, confirm Label print qty is set. Also confirm the part form has the proper logic format.

How can we set the min and max values to have the same decimals as qc results.

This statement will give you the number of decimals in the qc results. LEN(ALLT(q4_value))- IIF(RAT(".",q4_value)=0, LEN(ALLT(q4_value)),RAT(".",q4_value)). It can be used in a QCINFO statement, see example below. <<QCINFO_PARENT= IIF(ISDIGIT(q2_target)=.T., ALLT(STR(q2_min,10, LEN(ALLT(q4_value))- IIF(RAT(".",q4_value)=0, LEN(ALLT(q4_value)),RAT(".",q4_value)))) +” “+ALLT(STR(q2_max,10, LEN(ALLT(q4_value))- IIF(RAT(".",q4_value)=0, LEN(ALLT(q4_value)),RAT(".",q4_value)))),ALLT(q2_target))>>

Is it possible to modify multiple part forms at the same time?

No. Since part forms are Word documents, there is no way to mass edit these forms in Deacom.

I see extra space on my labels above my 3 of 9 barcode. How do I resolve this?

Please install the Free 3 of 9 barcode font. For assistance, contact Tech Support.

What expression/date calc can I use if I want to print the Julian Date on a part form?

Julian Date: <<ALLT(RIGHT(STR(YEAR(fi_lotdate),4,0),2)+PADL(ALLT(STR(fi_lotdate-DATE(YEAR(fi_lotdate),1,1)+1,3,0)),3,'0'))>> . This expression will generate in the YYDDD format. If you want the date in the YDDD format, use the following expression: Julian Date: <<ALLT(RIGHT(STR(YEAR(fi_lotdate),4,0),1)+PADL(ALLT(STR(fi_lotdate-DATE(YEAR(fi_lotdate),1,1)+1,3,0)),3,'0'))>>

Can I see the first and last serial numbers when printing master lot lables?

Yes. This is done by adding the First Serial: <<m.firstserial>> and Last Serial: <<m.lastserial>> fields to the part form.

Are Bill-to/Ship-to user fields available to print on sales part forms?

Yes, beginning in version 14.10, Bill-to and Ship-to user fields are available for use on sales part forms.

Tip: When printing Part Forms from Deacom, the system now checks the report layout for any copy, increment, page number, or page total usage settings (including r_page) that will specify the number of copies on the print job. If none are used/found, the system will continue to reevaluate fields and variables and send the print job without delay based on the concept of one print job per order, job etc. The feature was added for customer that have multiple labels for each job or order and needed the ability to speed up print processing.

Tip: The "bo_quant" (Bill of Materials Quantity) field and all Bill of Material User Fields are available to print on Part Forms.

Tip: When printing item labels from the customer part cross reference record (custpart2 form) the users have the ability to to add customer part cross reference user fields to the Item Label for the specific customer cross reference selected.

TIP: The "Limit Float to Objects Directly Above" field on the Edit Report form will restrict rectangle, field, and line objects to only shift relative to the objects or fields directly above it instead of all objects/fields which could be affected by the current one, such as those below the object/field. Only applies when the value in the Position field is set to "Float "for this object.

TIP: Beginning in version 17.01.003 users have the option to define the font size and type for Memo fields only, via System > Options. The "Memo Box Font Name", and "Memo Box Font Size", fields define the font size and type that will be used in all Memo boxes throughout the system, including user fields with a Field Type of "Memo". This is not the same as a default since the user cannot change the font size or type on the fly in Memo fields. Useful in situations where User-Defined Memo fields need to match the font name and size on generated reports/print outs.